The present invention relates generally to cell relay systems and, more particularly, to a system that selectively controls the discarding of information.
Cell relay systems, such as asynchronous transfer mode (ATM) systems, transmit data over a network as a plurality of fixed-length cells. The individual transmissions typically include one or more cells that constitute a portion of variable-length packets used by end systems or applications. Before transmission, a source station segments a packet into one or more cells and then transmits the cells.
A destination station, after receiving all of the cells associated with the packet, reassembles the cells and provides them to the end system or application. If a portion of the packet (i.e., one or more cells) becomes corrupt or dropped during transmission, the entire packet becomes corrupt. The end system or application typically has no use for the remaining cells of a corrupt packet.
In an ATM system that uses ATM adaption layer 5 (AAL5), the system establishes a particular route or xe2x80x9cvirtual circuitxe2x80x9d over which the cells travel between the source station and the destination station. The source station transmits the cells over the virtual circuit in order and the cells arrive at the destination station in the same order. Sometimes cells from other packets traveling over a different, intersecting virtual circuit interleave with the cells and, thus, alter their time but not their order of arrival at the destination station. The destination station extracts the cells based on virtual circuit information included in the cells before it reassembles them into the associated packets.
Problems arise when the network becomes congested and intermediate switches contain insufficient buffer capacity to handle incoming traffic. Conventional switches discard incoming cells when their buffers are full. Then, when sufficient buffer space becomes available, they store incoming cells again. Accordingly, the switches may discard a portion of a packet and retain the preceding and succeeding portions, or fragments of the packet. These essentially useless packet fragments continue to travel over the network, consuming network resources.
In addition, because conventional switches store useless packet fragments in their buffers, this valuable buffer space becomes unavailable to the cells of complete or xe2x80x9cgoodxe2x80x9d packets. In other words, the switches discard good cells while also storing useless packet fragments. Typically, packets with discarded good cells must be retransmitted, adding to the network congestion.
Therefore, a need exists for a discard scheme that improves packet throughput during periods of network congestion and improves resource allocation among source and destination units when network congestion is present on one cell routing path, but less prevalent along another path.
Systems and methods consistent with the present invention address this need by providing a cell discard scheme that determines whether to discard a cell of a packet based on the ability of a buffer to store the entire packet.
In accordance with the purpose of the invention as embodied and broadly described herein, a system consistent with the present invention includes a cell relay switch having an output port including a queuing buffer, a controller and an output processor. The output port receives a plurality of cells of different packets from multiple sources. The output processor transmits cells to multiple destinations. Upon receiving the cells, the queuing buffer temporarily stores them before transmission by the output processor.
The controller controls the storing of the received cells in the queuing buffer by determining a total number of the cells in the packet, a rate at which the packets are received, and a number of cells to be received for other packets. The controller further decides whether the buffer contains sufficient space to store the received cells based on the total number of cells in the packet and the number of cells to be received for the different packets, allows storage of the received cells when the buffer contains sufficient space, and discards the received cells when the buffer contains insufficient space.